// when
// 用法：接收两个函数参数，第一个函数参数根据可观察函数参数返回的布尔值来决定第二个函数是否执行，并执行一次
when(() => store.bool, () => console.log("it's true"))

store.bool = true
// 因此将bool修改为 true 后，才打印 "it's true"
// 
// 注意1：必须根据可观察数据来判断，不能引用其他变量
// 下面两行不会打印
when(() => !!store.bar, () => console.log("it's true"))

store.bar = true
// 
// 注意2：如果一开始里面就是真的话，就会同步执行代码
// 此时 store.bool 为 true
console.log('before');
when(() => store.bool, () => console.log("it's true"))
console.log('after');
// 以此打印 before it's true after